#include "bsp.h"
#include "lpc_interrupt_entry.h"

void SysTick_Handler(void)
{
  hw_sys_tick_isr();
}

void DMA_IRQHandler(void)
{
  if(GPDMA_IntGetStatus(GPDMA_STAT_INT, 0)){
    if(GPDMA_IntGetStatus(GPDMA_STAT_INTTC, 0)){

      // CLEAR INT
      GPDMA_ClearIntPending(GPDMA_STATCLR_INTTC, 0);
    }
    // CHECK ERROR CLEAR
    if(GPDMA_IntGetStatus(GPDMA_STAT_INTERR, 0)){
      GPDMA_ClearIntPending(GPDMA_STATCLR_INTERR, 0);
    }
  }
}

void TIMER0_IRQHandler(void)
{
  //OSIntEnter();
  NVIC_ClearPendingIRQ(TIMER0_IRQn);
  //OSIntExit();
}

void TIMER1_IRQHandler(void)
{
  //OSIntEnter();

  NVIC_ClearPendingIRQ(TIMER1_IRQn);
  //OSIntExit();
}

void TIMER2_IRQHandler(void)
{
 //OSIntEnter();

 NVIC_ClearPendingIRQ(TIMER2_IRQn);
 //OSIntExit();
}

void TIMER3_IRQHandler(void)
{
  //OSIntEnter();

	//NVIC_ClearPendingIRQ(TIMER3_IRQn);
  //OSIntExit();
}

void EINT1_IRQHandler(void)
{
  //OSIntEnter();

  NVIC_ClearPendingIRQ(EINT1_IRQn);
	EXTI_ClearEXTIFlag(EXTI_EINT1);
  //OSIntExit();
}

void EINT3_IRQHandler(void)
{
  //OSIntEnter();

  NVIC_ClearPendingIRQ(EINT3_IRQn);
	EXTI_ClearEXTIFlag(EXTI_EINT3);
  
  //OSIntExit();
}

void RTC_IRQHandler(void)
{
  //OSIntEnter();
  hw_rtc_isr();
  NVIC_ClearPendingIRQ(RTC_IRQn);
  //OSIntExit();
}

